package prac;

import java.util.*;

public class ChongDianZhuang {

    /**
     * 某个充电站，可提供 n 个充电设备，每个充电设备均有对应的输出功率。任意个充电设备组合的输出功率总和，均构成功率集合 P 的 1 个元素。功率集合 P 的最优元素，表示最接近充电站最大输出功率 p_max 的元素。
     * 输入为 3 行：
     * 第 1 行为充电设备个数 n。
     * 第 2 行为每个充电设备的输出功率。
     * 第 3 行为充电站最大输出功率 p_max。
     * 输出为功率集合 P 的最优元素，需满足充电设备个数 n>0，最优元素必须小于或等于充电站最大输出功率 p_max。
     * @param args
     */

    public static void main11(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取充电设备个数
        int n = scanner.nextInt();
        // 读取每个充电设备的输出功率
        List<Integer> o1=new ArrayList();
        for (int i = 0; i < n; i++) {
            o1.add(scanner.nextInt()) ;
        }
        int pMax = scanner.nextInt();
        scanner.close();


        Set<Integer> result=new HashSet<>();
        result.add(0);
        for(int o:o1){
            Set<Integer> result1=new HashSet<>();
            for(Integer i:result){
                if(i+o>pMax){
                    continue;
                }if(i+o==pMax){
                    System.out.println(pMax);
                    return;
                }
                result1.add(i+o);
            }
            result.addAll(result1);
        }
        Optional<Integer>  s=  result.stream().max(Integer::compare);
        System.out.println(s.get());
    }
}
